package com.king.oa.domain;

import java.util.List;

/**
 * 分页功能中一页的信息
 * 
 * @author KingSir
 *
 */
public class PageBean {

	//指定或者页面参数
	private int currentPage;    //当前页
	private int pageSize;       //每页显示多少条
	
	//查询数据库
	private int recordCount;    //总记录数
	private List<?> recordList; //页面的数据列表

	//需要计算得到的值
	private int pageCount;      //总页数
	private int beginPageIndex; //页码列表的开始索引
	private int endPageIndex;   //页码列表的结束索引
	
	/**
	 * 只接受前4个必要属性的值，会自动计算其他3个属性的值
	 * 
	 * @param currentPage
	 * @param pageSize
	 * @param recordCount
	 * @param recordList
	 */
	public PageBean(int currentPage, int pageSize, int recordCount,
			List<?> recordList) {
		super();
		this.currentPage = currentPage;
		this.pageSize = pageSize;
		this.recordCount = recordCount;
		this.recordList = recordList;
		
		// 计算总页码
		pageCount = (recordCount + pageSize - 1) / pageSize;
		
		// 计算beginPageIndex 和 endPageIndex
		// >> 总页数不大于10页，则全部显示
		if(pageCount <= 10){
			beginPageIndex = 1;
			endPageIndex = pageCount;
		}
		// >> 总页数大于10页，则显示当期那页码附近10个页码
		else{
			// 当前页附近的共10个页码 （前4个 + 当前页 + 后5个）
			beginPageIndex = currentPage - 4;
			endPageIndex = currentPage + 5;
			// 当前面的页码不足4个时， 则显示前10个页码
			if(beginPageIndex < 1){
				beginPageIndex = 1;
				endPageIndex = 10;
			}
			// 当后面的页码不足5个时，则显示后面的10个页码
			if(endPageIndex > pageCount){
				beginPageIndex = pageCount - 10 + 1;
				endPageIndex = pageCount;
			}
		}
	}

	public List<?> getRecordList() {
		return recordList;
	}
	
	public void setRecordList(List<?> recordList) {
		this.recordList = recordList;
	}
	
	public int getCurrentPage() {
		return currentPage;
	}
	
	public void setCurrentPage(int currentPage) {
		this.currentPage = currentPage;
	}
	
	public int getPageCount() {
		return pageCount;
	}
	
	public void setPageCount(int pageCount) {
		this.pageCount = pageCount;
	}
	
	public int getPageSize() {
		return pageSize;
	}
	
	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}
	
	public int getRecordCount() {
		return recordCount;
	}
	
	public void setRecordCount(int recordCount) {
		this.recordCount = recordCount;
	}
	
	public int getBeginPageIndex() {
		return beginPageIndex;
	}
	
	public void setBeginPageIndex(int beginPageIndex) {
		this.beginPageIndex = beginPageIndex;
	}
	
	public int getEndPageIndex() {
		return endPageIndex;
	}
	
	public void setEndPageIndex(int endPageIndex) {
		this.endPageIndex = endPageIndex;
	}
	
}
